Programmable gate arrays, sometimes containing over one million transistors, are frequently used to create economical Application Specific Integrated Circuits (ASIC). A programmable gate array may be metal mask programmable, electrically programmable, or laser programmable. In a mask programmable gate array, the silicon die containing the unconnected transistors is called a master slice or master image. A user who wishes to customize a master slice uses well-known software programs and predefined logic circuit configurations (macrocells) contained in a macrocell library to selectively interconnect the transistors within the gate array to provide an ASIC.
In one type of metal mask programmable gate array, an array of cells is formed on a chip wherein each cell is comprised of a plurality of unconnected components. In a typical arrangement, there is a variety of types of components in each cell to enable a designer of the macrocells to create various kinds of logic circuits within each cell or by using a combination of cells. Ideally, each cell should contain an optimum number and variety of components so that the designer may create a wide variety of macrocells using the shortest interconnect wire lengths, using a minimum amount of die area, and using other techniques for achieving high performance for each macrocell.
In a programmable gate array structure, CMOS transistors frequently comprise the components of a cell due to the low power consumption of a CMOS device, where an N-channel and a P-channel MOSFET are connected in series between a power supply terminal and ground. Because the gates of these CMOS transistors are made common, one transistor will be off while the other transistor will be on, thus avoiding a low impedance path between the power supply terminal and ground. These CMOS transistors may be used as building blocks to create a wide variety of macrocells.
A conventional CMOS gate array cell is shown in FIG. 1 and comprises a number of equal size N-channel transistors 2 and a number of equal size P-channel transistors 4. Such a cell is inefficient at implementing memory elements such as D-type flip flops and SRAM cells, and its output drive capability is very limited. The transistor sizes typically used in such prior art cells are unnecessarily large for driving nets with a low fanout of, for example, one or two and are insufficient for driving nets with a high fanout exceeding, for example, five. Consequences of using unnecessarily large transistor sizes for driving low fanouts are that the relatively large input capacitances for the logic macrocells result in unnecessarily high dynamic power dissipation and also unnecessarily high loading on clock nets.
Since the typical transistors are too small to adequately drive a fanout exceeding five, two or more macrocells must be connected in parallel, or separate buffers must be introduced in the design. These large resulting macrocells give rise to inefficient chip area utilization and an increase in interconnect length.
Also in the prior art, to improve the efficiency of implementing SRAM cells, CMOS gate array cells with N-channel transistors of two different sizes have been used. The smaller size N-channel transistors are typically less than one third the size of the larger size N-channel transistors. These prior art cells may also incorporate small size P-channel transistors to further improve the efficiency of implementing SRAM cells. However, in such cells, the large transistors are still unnecessarily large for driving low fanout nets and inadequate for driving high fanout nets, while the small transistors are inadequate for driving almost all nets. Generally, for these prior art devices to drive high fanout nets, two or more macrocells must be connected in parallel or separate buffers must be introduced.
In the prior art, since the small size transistors used in SRAMs are typically not used for implementing logic macrocells, such as D-flip flops, these logic macrocells are area inefficient. Moreover, the input capacitance for the macrocells is generally unnecessarily high.